package com.lanyan.system.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.IdType;
import com.lanyan.common.annotation.RequiredField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.lanyan.system.domain.Courier;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.lanyan.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import com.alibaba.fastjson2.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.lanyan.common.core.domain.BaseEntity;

/**
 * 订单Vo对象 orders
 *
 * @author lanyan
 * @date 2024-11-26
 */
@Data
public class OrdersVo<T> extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "orders_id", type = IdType.AUTO)
    @RequiredField(update = true,delete = true)
    private Long ordersId;

    /** 起点用户 */
    @Excel(name = "起点用户")
    @ApiModelProperty("起点用户")
    private String fetchName;

    /** 终点用户 */
    @Excel(name = "终点用户")
    @ApiModelProperty("终点用户")
    private String sendName;

    /** 地点地址 */
    @Excel(name = "地点地址")
    @ApiModelProperty("地点地址")
    private String fetchDetails;

    /** 终点地址 */
    @Excel(name = "终点地址")
    @ApiModelProperty("终点地址")
    private String sendDetails;

    /** 起点电话 */
    @Excel(name = "起点电话")
    @ApiModelProperty("起点电话")
    private String fetchPhone;

    /** 重点电话 */
    @Excel(name = "重点电话")
    @ApiModelProperty("重点电话")
    private String sendPhone;

    /** 收货时间 */
    @Excel(name = "收货时间")
    @ApiModelProperty("收货时间")
    private String receivingTime;

    /** 收货时间截止 */
    @Excel(name = "收货时间截止")
    @ApiModelProperty("收货时间截止")
    private String receivingEndTime;

    /** 哪天 */
    @Excel(name = "哪天")
    @ApiModelProperty("哪天")
    private String day;

    /** 订单金额 */
    @Excel(name = "订单金额")
    @ApiModelProperty("订单金额")
    private BigDecimal money;

    /** 订单状态（0待付款 1待接单 2进行中 3已完成 4已取消） */
    @Excel(name = "订单状态", readConverterExp = "0=待付款,1=待接单,2=进行中,3=已完成，4=已取消")
    @ApiModelProperty("订单状态（0待付款 1待接单 2进行中 3已完成 4已取消）")
    private String state;

    /** 是否支付（0未支付 1已支付） */
    @Excel(name = "是否支付（0未支付 1已支付）")
    @ApiModelProperty("是否支付（0未支付 1已支付）")
    private String isPay;

    /** 订单编号 */
    @Excel(name = "订单编号")
    @ApiModelProperty("订单编号")
    private String ordersNo;

    /** 所属配送员 */
    @Excel(name = "所属配送员")
    @ApiModelProperty("所属配送员")
    private Long courierId;

    /** 取送类型（0帮取 1帮送） */
    @Excel(name = "取送类型", readConverterExp = "0=帮取,1=帮送")
    @ApiModelProperty("取送类型（0帮取 1帮送）")
    private String secondType;

    @TableField(exist = false)
    @ApiModelProperty("物品详情")
    private List<T> ordersItemVoList;
    @TableField(exist = false)
    private String fetchEstate;
    @TableField(exist = false)
    private String sendEstate;
    @TableField(exist = false)
    private CourierVo courier;
    @TableField(exist = false)
    private String isEvaluate;
    @TableField(exist = false)
    private String isOverEvaluate;

}
